home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr49 / vscreen1.zip / README.DOC < prev    next >
Text File  |  1993-06-13  |  23KB  |  752 lines

  1. This is the SHAREWARE Version of VSCREEN 2.10.
  2.  
  3. I work with the "real" Version since 3 Years, starting with version 1.00.
  4. This tool makes it easy to build up a screen layout in MS-C and have enough 
  5. other stuff to make programming with MS-C easy.
  6. But first a warning : My english is not this good to translate the 
  7. german manual.
  8. So - please take it easy and if you want, send me a corrected script.
  9.  
  10. In the Shareware Version you can use 10 virtuell windows.
  11. After the 10.th the tool will bring you an error message.
  12.  
  13. The functions :
  14.  
  15. InitScreen(char *licence) : 
  16.  
  17. This function is setting all the system (and tool)  variables and checks out
  18. your licence. You *MUST* run this function before you start to use other 
  19. functions !! For the shareware version the parameter is : shareware
  20. So, just call InitScreen("shareware");
  21.  
  22. OpenWindow(char *Text, int Xs, int Ys, int Xe, int Ye, int F, int B, int S) :
  23.  
  24. Opens a window, where 
  25.  
  26. Text = Name of Window
  27. Xs = Start position X (upper left)
  28. Ys = Start position Y (upper left)
  29. Xe = End position X (lower right)
  30. Ys = End position Y (lower right)
  31. F = Foreground Color
  32. B = Background Color
  33. S = TRUE means with shadow, FALSE without
  34.  
  35. Returning : 
  36. 0 = No error
  37. 1 = Xe <= Xs
  38. 2 = Ye <= Ys
  39. 3 = Text > Xe-Xs
  40. 4 = ScrCnt > 10  (ScrCnt is the Virtuell Screen Counter);
  41. 5 = not enough memory to open a window
  42.  
  43. CloseWindow(WinNo)
  44.  
  45. Close a window.
  46.  
  47. WinNo : if you say ScrCnt you close the last window (do this in the most case). 
  48.  
  49. Returning :
  50. 0 = No error
  51. 6 = WinNo > ScrCnt
  52. 7 = WinNo != ScrCnt (i do not understand this ?!?!?)
  53.  
  54. void SetWindow(int Xs, int Ys, int Xe, int Ye)
  55.  
  56. Changes the internal size of the last opened window. 
  57. ** IMPORTANT ** Be careful- before closing this window you have to 
  58. restore the old values !! 
  59.  
  60. void SetBkGr(int V, int B)
  61.  
  62. Changes the hole screen into a new foreground and background color.
  63.  
  64. V = Foreground
  65. B = Background
  66.  
  67. void SetBk(int Bcol)
  68.  
  69. Changes the hole screen into a new background color.
  70.  
  71. void SetFr(Tcol)
  72.  
  73. Changes the hole screen into a new foreground color.
  74.  
  75. void SetBkXY(int X, int Y, int L, char VS, int Bcol)
  76.  
  77. Changes a line on the position XY with a length of L to a new background color.
  78.  
  79. X = X-Position
  80. Y = Y-Position
  81. L = Length
  82. VS = if TRUE the XY-values are inside of a window (releativ to a window)
  83.      if FALSE the XY-values are on the hole screen
  84. Bcol = background color
  85.  
  86. void SetFrXY(...
  87.  
  88. Same as SetBkXY, except you are setting the foreground color.
  89.  
  90. int WhereX
  91.  
  92. Returns the X-position of the cursor
  93.  
  94. int WhereY
  95.  
  96. Returns the Y-position of the cursor
  97.  
  98. void gotoxy(int x, int y)
  99.  
  100. Setting the cursor to a position xy on the screen
  101.  
  102. void Vgotoxy(...
  103.  
  104. Same as gotoxy,except the xy position is in a window
  105.  
  106. char Readin(int x, int y) and VReadin(...
  107.  
  108. Reads a char from console and shows it on screen position xy
  109.  
  110. char ReadKey(int X, int Y) and VReadKey(...
  111.  
  112. Reads a char from console (invisible)
  113.  
  114. int read_ky(char *puffer, int ActLength, char Length_Opt, char Type_, 
  115.             char subst, int x, int y, int VS, char filler)
  116.  
  117. Reads a string from console.
  118.  
  119. puffer = Adr. of a string with max 80 char
  120. ActLength = max. Length
  121. Length_Opt = 'w' - Input = 0 or <= ActLength allowed
  122.              'm' - Input must be in the length of ActLength
  123. Type_ = 'n' - numeric only
  124.         'b' - alpha only
  125.         'a' - alphanumeric only (Realy only A-Z,a-z,0-9)
  126.         'w' - no check
  127. subst = FALSE - shows the char on screen
  128.         the char will be shown ( so if you give 249h there will be an ù)
  129.         Good for password input
  130. X = X Position
  131. Y = Y Position
  132. VS = TRUE means, xy are inside of an window
  133. filler = FALSE -> Shows on the Inputfield in the length of ActLength the
  134.                   char 249h
  135.          SHOW -> Shows the value of puffer (from above)
  136.          any other char
  137.  
  138. returns the termination key (ESC or ENTER or something like that)
  139.  
  140. int read_str(...
  141.  
  142. Same as read_ky, but even better. There is a line-editor in this function.
  143. But .. the subst is not working any more, because nobody want to correct 
  144. something what is not visible. (Bad sentence, he .. i hope you understand)
  145.  
  146. void Write_ln(char *Text) and VWrite_ln(...
  147.  
  148. Writes the string "Text" direct into the video RAM.
  149. Starting at cursor position.
  150. After this function the cursor is in the next line. VWrite_ln is the 
  151. same function in a window.
  152.  
  153. void Write_(char *Text) and VWrite_(...
  154.  
  155. Same as Write_ln, except the cursor is still in there where he was.
  156.  
  157. By the way, if you write with this function, the cursor will not 
  158. move to the end of the text !!!!
  159.  
  160. void ClrScr()
  161.  
  162. Clear Screen (the hole one)
  163.  
  164. void VClrScr()
  165.  
  166. Clear virtuell Screen (the hole window)
  167.  
  168. void Err25(char *Text, int T, int B)
  169.  
  170. Put a Text in the foreground color T and background color B in the
  171. last Screen line. This works with all Textmodes (25,28,43 ... lines).
  172.  
  173. void ErrMess(char *Text, int T, int B)
  174.  
  175. Opens a window a shows the Text in this window. The window will be always
  176. in the middle of the screen starting in row 6 or so. It's nice because ...
  177.  
  178. Example : if ( (retcode = CloseWindow(ScrCnt)) != 0 )
  179.           {
  180.              ErrMess("Error detected .. no close possible",B_WHITE,GREY)
  181.              ...
  182.           }
  183.  
  184. void numlout()
  185.  
  186. Lamp NUMLOCK goes out and you can use the cursor
  187.  
  188. void numlon()
  189.  
  190. Lamp NUMLOCK goes on and you can use the numeric block
  191.  
  192. void Sound(int Freq, int Timer)
  193.  
  194. Makes sound on the internal speaker. Forget Ctrl-G or 07h (Bell). Make
  195. music with this function like Peter N. does.
  196.  
  197. void SetColLine(int x, int y, int Len, int VS, int Tcol, int Bcol)
  198.  
  199. Setting the foreground- and the backgroundcolor in a specified line. Good to use for mark a text or other stuff.
  200.  
  201. x = Position X
  202. y = Position Y
  203. Len = Length
  204. VS = if TRUE -> X and Y are inside the last window
  205. Tcol = foregrond color
  206. Bcol = background color
  207.  
  208.  
  209. int InitPrinter( int P_No)
  210.  
  211. Send a Init Signal to the Printer No. (P-No) LPT1 = 0, LPT2 = 1 ..... 
  212. Attention : Breaks a running print command
  213.  
  214. Returns status of printer :
  215.  
  216. RC 1 = Time out
  217. RC 8 = Error sending data
  218. RC 10 = Online (no error)
  219. RC 20 = Paper end
  220. RC 40 = ACK
  221.  
  222.  
  223. int Printing(char * text, int P_No)
  224.  
  225. Sending the print data direct to the printer. Checks the print command after every character. If the printer got a own buffer, there will be a Syncro-Routine. This print command is good, 'cause you don't loose data while printing.
  226.  
  227. Returns status of printer :
  228.  
  229. RC 0 = No Error
  230. RC 1 = Time out
  231. RC 8 = Error sending data
  232. RC 18 = General failure
  233. RC 20 = Paper end
  234. RC 80 = Printer busy
  235.  
  236.  
  237. int Easy_Printing(char * text, int P_No)
  238.  
  239. Same like above, but without errorcheck and Synco-Routine
  240.  
  241.  
  242. int CheckDrive(char drive[2])
  243.  
  244. Check the status of a drive without using the DOS-Handles. You need this function to stop the DOS Message (A)bort, (R)etry, (F)ailure.... Now you got the chance for a reaction.
  245.  
  246. Returns Hexa:
  247.  
  248. RC 0 = No error
  249. RC 1 = Invalid function or drive not present
  250. RC 2 = Adress not found
  251. RC 3 = Write protected (only floppy)
  252. RC 4 = Sector not found
  253. RC 5 = Controller error reset (only HDD)
  254. RC 7 = Init failure controller (only HDD)
  255. RC 8 = DMA Error (Overflow) only floppy
  256. RC 9 = Buffer > 64 KByte (only floppy)
  257.        Parity Error ( only HDD)
  258. RC A = Sector defect (only HDD)
  259. RC 10 = Error while reading drive
  260. RC 20 = Error floppy controller
  261.         Controller defect (only HDD)
  262. RC 40 = Track not found (only floppy)
  263.         Operation breaks or fail
  264. RC 80 = Time-Out
  265. RC AA = HDD not ready (only HDD)
  266. RC CC = Error while writing (only HDD)
  267.  
  268.  
  269. char * Get_Date()
  270.  
  271. Get the date and store in intern field Get_Date (dd.mm.yy). 
  272.  
  273. char * Get_Time()
  274.  
  275. Get the time and store in intern field Get_Time (hh:mm)
  276.  
  277. void delay(int _tick_)
  278.  
  279. Pausing the running prozess for _tick_ millisec. (1 Sec. = 1000)
  280.  
  281. int JN (... *only for german version interessting)
  282.  
  283. void GoOn()
  284.  
  285. Only for german version interessting
  286.  
  287. void Reboot()
  288.  
  289. Reboots the pc like the "reset"-button. Reboot with RAM-Refresh.
  290.  
  291. signed int In_Box(int tc, int bc, int bar, int len, char * text,...)
  292.  
  293. (ohoh, hard to explain .. i'll start with the parameters) 
  294.  
  295. tc = forground color
  296. bc = backgound color
  297. bar = color of a bar
  298. len = the size of the greatest text
  299. text = list of strings, ends with the NULL pointer
  300.  
  301. Example :
  302.  
  303. OpenWindow(" Choose ",3,3,13,6,BLUE,B_WHITE,TRUE);
  304. Vgotoxy(1,1);   /* you MUST set the cursor to the start of the text */
  305. if ( In_Box(CYAN,BLUE,RED,6,"END","CHANGE",NULL) == 1 ) exit(0);
  306. else ...
  307.  
  308. ATTENTION : You have to set the cursor to the begin of the starting text !!
  309.  
  310. (Okay .. i'll try to explain)
  311.  
  312. There is a automatic to make a choice for a routine. So, the value of return gives you the no. of the text you gave into the function. If you take a look to the example, END is the return value 1 and CHANGE is the return value 2. The user will have a bar on the screen and moves the bar with the UP- and DOWN keys.
  313.  
  314. (i hope you understand)
  315.  
  316. char get_char( int x, int y)
  317.  
  318. Reads and retruns a character from screen and the position XY
  319.  
  320.  
  321. Byte in_key_buf(Byte c)
  322.  
  323. Stores the character c in the keyboard buffer. So you can define macros or make demos by storing and reading the inputkeys from a file.
  324. Easy to handle.
  325.  
  326. void ebc_to_asc(char *ptr, int len)
  327.  
  328. Convert EBCDIC data to ASCII data starting and the adress of ptr with a length of len. Attention : The data will be converted directly
  329.  
  330. void asc_to_ebc(char *ptr, int len)
  331.  
  332. Same like above, just in the other direction.
  333.  
  334. (I use the function to work with UNIX data )
  335.  
  336. -----------------------------------------------------------------------------
  337.  
  338. PULLDOWN Menu Generator
  339.  
  340. All you need are the files PULLDOWN.H and PULLDOWN.INC.
  341.  
  342. Description of the PULLDOWN.H file :
  343.  
  344. Before using and change this file, make a copy for your project with a user defined name. DON'T delete the defines P_ESC, P_LEFT, P_RIGHT, NEXT and TEXTSUM_FAILURE.
  345.  
  346. HEADLINE : Define aour headline and end with the NULL pointer
  347. PULLDOWNS : Define your pulldown menu for each HEADLINE Keyword. Step to the next keyword with NEXT and stop with the NULL pointer
  348. TOPCOLOR : Foreground color HEADLINE
  349. DOWNCOLOR : Background color HEADLINE
  350. MENU_TC : Foreground color PULLDOWN
  351. MENU_BC : Background color PULLDOWN
  352. HIGHTEXT : Foreground color text on the bar
  353. LOWTEXT : Background color bar
  354.  
  355.  
  356. Description of the PULLDOWN.INC file :
  357.  
  358. There is no reason to change this file. All you have to do is to INCLUDE this file in your source file.
  359.  
  360.  
  361. USING :
  362.  
  363. INCLUDE the file PULLDOWN.H and PULLDOWN.INC (or whatever they named now)
  364.  
  365. #include "PULLDOWN.H"
  366. #include "PULLDOWN.INC"
  367.  
  368. Call the function _pd_() in the main program.
  369.  
  370. The Returncode will be the users choice :
  371.  
  372. Example :
  373.  
  374. switch (_pd_() )
  375. {
  376.    case 11 : #first Head - #first step
  377.    case 12 : #first Head - #second step
  378.     .
  379.     .
  380.    case 110 : #first Head - #tens step
  381.    case 21 : #Second Head - #first step
  382.      .
  383.      .  (and so on)
  384. }
  385.  
  386. That's really all.
  387.  
  388. -------------------------------------------------------------------------
  389. /* Mouse Functions */
  390.  
  391. int ms_reset();                    /* Reset Mouse */
  392.  
  393. Returns FALSE if no mouse driver loaded.
  394.  
  395. if TRUE : Fills the struct ms_info (defined in VSCREEN.H)
  396.           and sets the variable mouse = TRUE
  397.  
  398.  
  399. void ms_cursor(char order);        /* Show/Hide Mouse Cursor */
  400.  
  401. order : TRUE - show mouse cursor
  402.         FALSE - do not show mouse cursor and do not suppport the mouse
  403.  
  404.  
  405. void ms_X_from_to(int Xs, int Xe);   /* Set X - Range Mouse */
  406.  
  407. Xs : Left X-Range
  408. Xe : Right X-Range
  409.  
  410.  
  411. void ms_Y_from_to(int Ys, int Ye);    /* Set Y - Range Mouse */
  412.  
  413. Ys : Upper Y-Range
  414. Ye : Lower Y-Range
  415.  
  416. void ms_inform();                  /* Status Mouse */
  417.  
  418. Fills the struct ms_info (defined in VSCREEN.H)
  419.  
  420.  
  421. void ms_position(int x, int y);    /* Set Mouse Position */
  422.  
  423. Set the mouse cursor to the xy-position.
  424.  
  425. void ms_intr(Byte Bit_0,Byte Bit_1,..,Byte Bit_7,char far *ptr);
  426.     /* Set Mouse Interrupt Handle */
  427.  
  428. Bit 0 : Call Intr-Routine if mouse moves.
  429. Bit 1 : Call Intr-Routine if left button was pressed
  430. Bit 2 : Call Intr-Routine if left button released
  431. Bit 3 : Call Intr-Routine if right button was pressed
  432. Bit 4 : Call Intr-Routine if right button released
  433. Bit 5 : Call Intr-Routine if middle button was pressed
  434. Bit 6 : Call Intr-Routine if middle button released
  435. Bit 7 : Nothing, free
  436. far *ptr : Pointer to the Intr-Routine included in the main programm
  437.  
  438. ** IMPORTANT **
  439.  
  440. You have to use a far pointer in your Interrupt-Routine. Your Routine has to
  441. be closed with a RETURN FAR (retf). Do not use the return() command from
  442. MS-C !! Use the following code inside your C source :
  443.  
  444.     Assembler Code für RETF aus Mouse Interrupt
  445.  
  446. _asm 
  447. {
  448.   mov sp,bp
  449.   pop es
  450.   pop ds 
  451.   popa 
  452.   retf
  453. }
  454.  
  455.  
  456. char ms_beyond();                  /* Get Character on Mouse Position */
  457.  
  458. Fills the struct ms_info (defined in VSCREEN.H) and return the actuell character
  459. at the mouse position.
  460.  
  461.  
  462. void ms_def_cur(Word sc_mask, Word cu_mask, Byte order);/* Define Mouse Cursor */
  463.  
  464. Change the mouse cursor in textmode by your own. I never tried this and i don't
  465. know how this works.
  466.  
  467.  
  468.   order        TRUE(SOFTWARE)                 FALSE (HARDWARE)
  469.   ----------------------------------------------------------------   
  470. 1. sc_mask    char/attrib AND sc_mask          start scan line        
  471. 2. cu_mask    char/attrib XOR cu_mask          end scan line           
  472.  
  473.  
  474. Byte ms_init();                    /* Init Mouse */
  475.  
  476. Fills the struct ms_info (defined in VSCREEN.H)
  477.  
  478.  
  479. void far *interrupt ms_null();     /* O N L Y  update Mouse Info Block */
  480.  
  481. This functions is doing nothing execpt an update to the ms-info field.
  482. Resetting the Intr-Routine.
  483.  
  484. -------------------------------------------------------------------------
  485.  
  486. /*
  487.       Prog.Name : VSCREEN.H
  488.       Copyright : (c) 1991 by SUPPORT-EDV-Beratung GbR
  489.       
  490.       Note : Use for VSCREEN Tool 2.0a or greater
  491.       -----
  492.  
  493. */
  494.  
  495. /* -------------------------------------------------------- */
  496. /*                                           */
  497. /* Following EXTERNALS must be defined in MAIN - Programm   */
  498. /*                                           */
  499. /* extern int ScrCnt;      Index Screen Counter             */
  500. /* extern int T_Color;     Textcolor Foreground             */
  501. /* extern int B_Color;     Textcolor Background             */
  502. /* extern Byte Density;    High Video = 1, Low Video = 0    */
  503. /* extern unsigned ScrOfs; Screen Offset                    */
  504. /* extern unsigned ScrSeg; Screen Segment                   */
  505. /* extern char Date_[9];   Field for Date TT.MM.JJ          */
  506. /* extern char Time_[6];   Field for Time SS:MM             */
  507. /* extern Byte mono;       TRUE Hercules or compatible Card */
  508. /* extern Byte fk_flag;    TRUE if Functionkey was pressed  */
  509. /* extern int MaxX_Text;   Max. Columnes                    */
  510. /* extern int MaxY_Text;   Max. Rows                        */
  511. /* extern int Bordertyp;   Type of Border for Windows       */
  512. /* extern Byte mouse;      TRUE if Mouse detected           */
  513. /*                                                          */
  514. /* struct ms_info_block extern ms_info; Mouse-Info          */
  515. /*                                                          */
  516. /* -------------------------------------------------------- */
  517.  
  518. #define SHOW     -1
  519. #define TRUE      1
  520. #define FALSE     0
  521.  
  522. /* Color Definition */
  523.  
  524. #define BLACK     0
  525. #define BLUE      1
  526. #define GREEN     2
  527. #define CYAN      3
  528. #define RED       4
  529. #define PINK      5
  530. #define YELLOW    6
  531. #define WHITE     7
  532. #define GREY      8
  533.  
  534. /* High Density Colors */
  535.  
  536. #define B_BLUE    9
  537. #define B_GREEN  10
  538. #define B_CYAN   11
  539. #define B_RED    12
  540. #define B_PINK   13
  541. #define B_YELLOW 14
  542. #define B_WHITE  15
  543.  
  544. /* Keyboard */
  545.  
  546. #define LEFTARROW    0x4b
  547. #define RIGHTARROW   0x4d
  548. #define UPARROW      0x48
  549. #define DOWNARROW    0x50
  550. #define PAGEDOWN     0x51
  551. #define PAGEUP       0x49
  552. #define ENDLINE      0x4f
  553. #define HOMELINE     0x47
  554. #define INSERT       0x52
  555. #define DELETE       0x53
  556. #define BACKSPACE    0x08
  557. #define ENTER        0x0d
  558. #define CR           0x1d
  559. #define ESC          0x1b
  560. #define F1           0x3b
  561. #define F2           0x3c
  562. #define F3           0x3d
  563. #define F4           0x3e
  564. #define F5           0x3f
  565. #define F6           0x40
  566. #define F7           0x41
  567. #define F8           0x42
  568. #define F9           0x43
  569. #define F10          0x44
  570. #define F11          0x85     /* ONLY ON EXTENDED AT 102 KEYBOARD */
  571. #define F12          0x86     /* ONLY ON EXTENDED AT 102 KEYBOARD */
  572.  
  573. /* Cursor Size */
  574.  
  575. #define NOCURS       0
  576. #define SMALL        1
  577. #define BIG          2
  578. #define NORM         3
  579.  
  580. #define ScreenAdr(seg,ofs) ((void far*) \
  581.                            ((( unsigned long) (seg) << 16) \
  582.                            | (unsigned) (ofs)))
  583.  
  584.  
  585. #define SetAdr(seg,ofs) ((void far*) \
  586.                         ((( unsigned long) (seg) << 16) \
  587.                         | (unsigned) (ofs)))
  588.  
  589. /*
  590.     Assembler Code für RETF aus Mouse Interrupt
  591.  
  592. _asm 
  593. {
  594.   mov sp,bp
  595.   pop es
  596.   pop ds 
  597.   popa 
  598.   retf
  599. }
  600. */
  601.  
  602. typedef unsigned char   Byte;
  603. typedef unsigned int    Word;
  604.  
  605. /* Screen Routines Variablen Definition */
  606.  
  607. char far* Screen;
  608.  
  609. /*  Mouse Information Structure */
  610.  
  611. struct ms_info_block
  612. {
  613.   int x,y;
  614.   Byte Button_1;
  615.   Byte Button_2;
  616.   Byte Button_3;
  617.   char text;
  618.   Byte mousetyp;
  619.   int major;
  620.   int minor;
  621.   int port;
  622.   int intr;
  623. };
  624.  
  625. int OpenWindow();                  /* Open Virtual Screen */ 
  626. int CloseWindow();                 /* Close Virtual Screen */
  627. void SetWindow();                  /* Set a virtual Screen */
  628. void VWrite_();                    /* Write_ in virtual Screen */
  629. void VWrite_ln();                  /* Write_ in virtual Screen */
  630. void Vgotoxy();                    /* Set Cursor in virtual Screen */
  631. void VClrScr();                    /* Clear Virtual Screen */
  632. char VReadin();                    /* Read + Echo Char from Virtual Screen */
  633. char VReadKey();                   /* Read Char from Virtual Screen */
  634. int keypress();                    /* Returns FALSE if an key pressed */
  635. Byte in_key_buf();                 /* Put char in keyboard buffer */ 
  636. void Err25();                      /* Print Error Message on Screen */
  637. void ErrMess();                    /* Open Message Window */
  638. int Printing();                    /* Prints on Parallel Printer */
  639. int Easy_Printing();               /* Prints on Parallel Printer */
  640. int CheckDrive();                  /* Check for valid drive */
  641. char Date_[9];                     /* Field for Date TT.MM.JJ */
  642. char Time_[6];                     /* Field for Time SS:MM */
  643. void numlout();                    /* Switch LED and Numlock-Key off */
  644. void numlon();                     /* Switch LED and Numlock-Key on */
  645. signed int In_Box();               /* Write Text into a Box */
  646. int read_ky();                     /* Allows specified Input */
  647. void SetBk();                      /* Change Background Screen */
  648. void SetBkXY();                    /* Change Background from-to Screen */
  649. void SetFr();                      /* Change Foreground Screen */
  650. void SetFrXY();                    /* Change Foreground from-to Screen */
  651. void TestVideo();                  /* Value MaxX_Text and MaxY_Text */
  652. signed int Top_Pulldown();         /* Init Pulldown-Menu */
  653. signed int Text_Pulldown();        /* Open Pulldown */
  654. int pulldown();                    /* Create Pulldown Menu */
  655. int Init_Printer();                /* Init Printer and set Online */
  656. void Reboot();                     /* Reboot with RAM-Refresh */
  657. char get_char();                   /* Get Character from XY Position */
  658. void ebc_to_asc();               /* Convert EBCDIC to ASCII */
  659. void asc_to_ebc();                 /* Convert ASCII to EBCDIC */
  660.  
  661. /* Mouse Functions */
  662.  
  663. int ms_reset();                    /* Reset Mouse */
  664. void ms_cursor();                  /* Show/Hide Mouse Cursor */
  665. void ms_X_from_to();               /* Set X - Range Mouse */
  666. void ms_Y_from_to();               /* Set Y - Range Mouse */
  667. void ms_inform();                  /* Status Mouse */
  668. void ms_position();                /* Set Mouse Position */
  669. void ms_intr();                    /* Set Mouse Interrupt Handle */
  670. char ms_beyond();                  /* Get Character on Mouse Position */
  671. void ms_def_cur();                 /* Define Mouse Cursor */
  672. Byte ms_init();                    /* Init Mouse */
  673. void far *interrupt ms_null();     /* O N L Y  update Mouse Info Block */
  674.  
  675. /* Internal Near-Pascal functions */
  676.  
  677. void gotoxy();
  678. void ClrScr();
  679. int WhereX();
  680. int WhereY();
  681. char ReadKey();
  682. char Readin();
  683. void Write_();
  684. void Write_ln();
  685. void SetBkGr();
  686. void SetColLine();
  687. void InitScreen();
  688. void Cursor();
  689. char *Get_Date();                       /* TT.MM.JJ */
  690. char *Get_Time();                       /* SS:MM */
  691. void delay();
  692. int JN();
  693. void GoOn();
  694. void Sound();
  695.  
  696. /* Errors during VSCREEN */
  697.  
  698. #define WINFUNC_OK 0
  699. #define WINSIZE_1  1
  700. #define WINSIZE_2  2
  701. #define WINDEF_1   3
  702. #define WINALLOC   4
  703. #define WINMEMO    5
  704. #define WINCLOSE   6
  705. #define WINNOLAST  7
  706.  
  707. #define ABORT     -1
  708.  
  709. /* Line Definition */
  710.  
  711. #define CUL_EASY      218       /* ┌ */
  712. #define CUR_EASY      191       /* ┐ */
  713. #define CDL_EASY      192       /* └ */
  714. #define CDR_EASY      217       /* ┘ */
  715. #define CST_EASY      196       /* ─ */
  716. #define CDN_EASY      179       /* │ */
  717. #define CUL_DOUBLE    201       /* ╔ */
  718. #define CUR_DOUBLE    187       /* ╗ */
  719. #define CDL_DOUBLE    200       /* ╚ */
  720. #define CDR_DOUBLE    188       /* ╝ */
  721. #define CST_DOUBLE    205       /* ═ */
  722. #define CDN_DOUBLE    186       /* ║ */
  723. #define CUPL_BLOCK    220       /* ▄ */
  724. #define CDNL_BLOCK    223       /* ▀ */ 
  725. #define CLD_BLOCK     221       /* ▌ */
  726. #define CRD_BLOCK     222       /* ▐ */
  727.  
  728. #define BOX_EASY CUL_EASY,CUR_EASY,CDL_EASY,CDR_EASY,CST_EASY,CDN_EASY
  729. #define BOX_DOUBLE CUL_DOUBLE,CUR_DOUBLE,CDL_DOUBLE,CDR_DOUBLE,CST_DOUBLE,CDN_DOUBLE
  730. #define BOX_BLOCK CUPL_BLOCK,CDNL_BLOCK,CLD_BLOCK,CRD_BLOCK,NULL,NULL
  731.  
  732. #define EASY    1
  733. #define DOUBLE  2
  734. #define BLOCK   3
  735.  
  736. /*
  737.  
  738.    Box - Examples  
  739.  
  740.    ┌─┐       ╔═╗         ▄▄▄
  741.    │ │ Easy  ║ ║ Double  ▌ ▐ Block
  742.    └─┘       ╚═╝         ▀▀▀
  743. */
  744.  
  745. ------------------------------------------------------------------------
  746.  
  747.  
  748.  
  749.  
  750. Okay, thats it. Please feel free to mail some questions. 
  751.  
  752.